Unity SDK
概要
WebAR³ VPS の Unity SDK を使うと、準備済みの VPS マップ内でユーザーをローカライズし、ARKit や ARCore 対応デバイスにセンチ単位の精度でコンテンツを配置できます。Immersal ドキュメントと同じ流れで、前提条件の確認からインストール、シーン設定、ローカライズ開始までをガイドします。
必要条件
- Unity 2022.3 LTS 以降
- ARKit または ARCore に対応したテスト端末
- サンプルプロジェクトをクローンする場合は Git LFS(大容量アセットを取得するため)
インストール手順
サンプルプロジェクトをクローン
git clone https://github.com/WebAR-Studio/was-vps-unity.git
Unity 2022.3+ でプロジェクトを開くと、Assets/Scenes に参考用シーンが含まれています。
Package Manager から追加
- Window → Package Manager を開きます。
- + → Add package from Git URL… を選択します。
https://github.com/WebAR-Studio/was-vps-unity.git?path=/Assetsを貼り付けて追加します。
Unity は Packages/was-vps-unity に SDK を配置します。
プロジェクト設定
- AR Session と AR Session Origin を含む AR Foundation 対応シーンを用意します。
- 空の GameObject に
VPSLocalisationServiceを追加します(ローカライズループを処理)。 - インスペクターで以下を割り当てます。
AR SessionAR Session Origin- 必要に応じて AR カメラや UI(サンプルを参照)
- VPS の API Key と少なくとも 1 つの Location ID を入力します。
APIキーが必要ですか?space.web-ar.studio で取得するか、support@webar3.com / support@web-ar.studio へお問い合わせください。
- (任意)デバッグ時は Save Images Locally や Save Logs In File を有効化します。
ローカライズの開始
SDK はシンプルな API を備えています。以下のスクリプトを追加し、VPSLocalisationService への参照をインスペクターで設定してください。
using UnityEngine;
using WASVPS;
public class VPSBootstrap : MonoBehaviour
{
[SerializeField] private VPSLocalisationService vpsService;
private void Start()
{
vpsService.OnPositionUpdated += HandlePositionUpdated;
vpsService.OnErrorHappend += HandleError;
var settings = new SettingsWASVPS(
new[] { "your-location-id" },
failsCountToReset: 5
);
settings.ApiKey = "your-api-key";
settings.LocalizationTimeout = 2.0f;
vpsService.StartVPS(settings);
}
private void HandlePositionUpdated(LocationState state)
{
Debug.Log($"Localized at {state.Localisation.VpsPosition}");
}
private void HandleError(ErrorInfo error)
{
Debug.LogError(error.LogDescription());
}
}
インスペクター設定
| プロパティ | 役割 | 既定値 |
|---|---|---|
| Start On Awake | シーン読み込み時に自動でローカライズを開始 | false |
| Force Mock In Editor | Unity エディターでモックプロバイダーを強制使用 | true |
| Send GPS | 各リクエストに GPS データを添付 | false |
| Fails Count To Reset | 連続失敗回数が閾値に達するとセッションをリセット | 5 |
| Save Images Locally | デバッグ用に送信フレームを保存 | false |
デバッグとテスト
Force Mock In Editorを有効にし、付属のモックテクスチャでデバイスなしでも検証できます。VPSLogger.SetLogLevel(LogLevel.VERBOSE)を呼び出して HTTP リクエストやレスポンス、エラーを詳細に確認します。- ローカライズが成功しない場合は、API キーと Location ID が公開済みマップと一致しているか確認してください。
次のステップ
- サンプルプロジェクト内の
Assets/Scenes/TestScene.unityとAssets/Scripts/ExampleVPS.csを参考にしてください。 - 取得した VPS のポーズを活用し、アンカー作成やコンテンツ配置、UI 更新に活かしましょう。